package com.weixin.pojo.message.reply;

import java.util.ArrayList;
import java.util.List;

import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.weixin.pojo.message.Message;
import com.weixin.pojo.message.dto.ArticlesMessage;

/**
 * 类描述：回复图文消息<br>
 * <br/>
 * 创建人：邓强 <br>
 * 创建时间：2017年11月1日 下午5:34:43 <br>
 * 修改人： <br>
 * 修改时间：2017年11月1日 下午5:34:43 <br>
 * 修改备注： <br>
 * 
 * @version V1.0
 */
@XStreamAlias("xml")
public class ArticlesReplyMessage extends Message {
	/**
	 * 图文消息个数，限制为8条以内
	 */
	private Integer ArticleCount = 0;
	/**
	 * 多条图文消息信息，默认第一个item为大图,注意，如果图文数超过8，则将会无响应
	 */
	private List<ArticlesMessage> Articles = new ArrayList<>();

	public ArticlesReplyMessage() {
		super();
		setMsgType("news");
	}
	
	public ArticlesReplyMessage(String title, String description, String picUrl, String url) {
		this();
		addArticle(title, description, picUrl, url);
	}
	
	public ArticlesReplyMessage(String toUserName, String title, String description, String picUrl, String url) {
		this(title, description, picUrl, url);
		setToUserName(toUserName);
	}

	public Integer getArticleCount() {
		return ArticleCount;
	}

	public List<ArticlesMessage> getArticles() {
		return Articles;
	}

	public void setArticles(List<ArticlesMessage> articles) {
		this.Articles = articles;
	}
	
	/**
	 * 添加图文消息<br>
	 * <br>  
	 * 创建人：邓强   <br>
	 * 创建时间：2017年11月2日 上午9:54:53    <br> 
	 * 修改人：  <br>
	 * 修改时间：2017年11月2日 上午9:54:53   <br>  
	 * 修改备注：     <br> 
	 * @param title		图文消息标题
	 * @param description	图文消息描述
	 * @param picUrl	图片链接，支持JPG、PNG格式，较好的效果为大图360*200，小图200*200
	 * @param url	点击图文消息跳转链接
	 */
	public void addArticle(String title, String description, String picUrl, String url){
		if(this.Articles.size()<8){
			Articles.add(new ArticlesMessage(title, description, picUrl, url));
		}
		after();
	}
	
	public void addAllArticle(List<ArticlesMessage> articles){
		if(this.Articles.size()<8){
			Articles.addAll(articles);
		}
		after();
	}

	private void after(){
		if(this.Articles.size()>8){
			this.Articles = this.Articles.subList(0, 8);
		}
		ArticleCount = this.Articles.size();
	}
}